//  地里信息位置获取工具类
/**
 * 获取用户当前所在的位置 【适应微信新版本获取地里位置信息，旧getLocation方法频繁调用有性能问题，并且30秒只能获得一次成功】 
 */
// const getLocation = () => {
// 	let {locationEnabled} = wx.getSystemInfoSync();
// 	if (locationEnabled) {
// 		return new Promise((resolve, reject) => {
// 			let _locationChangeFn = res => {
// 				// console.log('location change', res);
// 				resolve({
// 					latitude: res.latitude,
// 					longitude: res.longitude
// 				});
// 				wx.offLocationChange(_locationChangeFn) // 关闭实时定位
// 			};
// 			wx.startLocationUpdate({
// 				success: res => {
// 					// wx.onLocationChange(_locationChangeFn);
// 					wx.getLocation({
// 					 type: 'wgs84',
// 					 success (res) {
// 					   const latitude = res.latitude
// 					   const longitude = res.longitude
// 					   const speed = res.speed
// 					   const accuracy = res.accuracy
// 					 }
// 					})
// 				},
// 				fail: err => {
// 					// console.log('获取当前位置失败', err);
// 					wx.showModal({
// 						title: '温馨提示',
// 						content: '获取权限失败，需要获取您的地理位置才能为您提供更好的服务！是否授权获取地理位置？',
// 						confirmText: '前往设置',
// 						cancelText: '取消',
// 						success: res => {
// 							if (res.confirm) {
// 								wx.openSetting({
// 									success: async res => {
// 										// console.log(res);
// 										if (res.authSetting['scope.userLocation']) {
// 											wx.showToast({
// 												title: '授权成功请继续',
// 												icon: 'success'
// 											})
// 										}
// 									}
// 								});
// 							}
// 						}
// 					});
// 					reject(err);
// 				}
// 			});
// 		});
// 	} else {
// 		wx.showToast({
// 			title: '请检查手机定位是否开启',
// 			icon: 'none'
// 		})
// 		return new Promise((resolve, reject) => {
// 			reject()
// 		})
// 	}
// }


var util = require('./util');

function getLocation() {

  return new Promise(function (resolve, reject) {
    
    wx.getSetting({
      success: (res) => {
        //console.log(JSON.stringify(res))
        // res.authSetting['scope.userLocation'] == undefined    表示 初始化进入该页面
        // res.authSetting['scope.userLocation'] == false    表示 非初始化进入该页面,且未授权
        // res.authSetting['scope.userLocation'] == true    表示 地理位置授权
        if (res.authSetting['scope.userLocation'] === false) {
          wx.showModal({
            title: '请求授权当前位置',
            content: '需要获取您的地理位置，请确认授权',
            success: function (res) {
              if (res.cancel) {
                wx.showToast({
                  title: '拒绝授权',
                  icon: 'none',
                  duration: 1000
                });
                getCurrentLocation(resolve, reject);
              } else if (res.confirm) {
                wx.openSetting({
                  success: function (dataAu) {
                    if (dataAu.authSetting["scope.userLocation"] == true) {
                      wx.showToast({
                        title: '授权成功',
                        icon: 'success',
                        duration: 1000
                      })
                      //再次授权，调用wx.getLocation的API
                      getCurrentLocation(resolve, reject);
                    } else {
                      wx.showToast({
                        title: '授权失败',
                        icon: 'none',
                        duration: 1000
                      });
                      getCurrentLocation(resolve, reject);
                    }
                  }
                })
              }
            }
          })
        } else if (res.authSetting['scope.userLocation'] == undefined) {
          wx.authorize({
            scope: 'scope.userLocation',
            success() { //用户同意开启授权
              //进行地理位置授权完成后的逻辑操作
              getCurrentLocation(resolve, reject);
            },
            fail(res) { //用户拒绝开启授权
              wx.hideLoading()
              wx.showToast({
                title: '授权失败',
                icon: 'none',
                duration: 2000
              });
              getCurrentLocation(resolve, reject);
            }
          })
        } else if (res.authSetting['scope.userLocation'] == true) {
          getCurrentLocation(resolve, reject);
        }
      }
    });
  });
}


function getCurrentLocation(resolve, reject) {
  wx.getLocation({
    type: 'gcj02',
    success: function (res) {
      var longitude = res.longitude //经度
      var latitude = res.latitude //纬度

      wx.setStorageSync("longitude", longitude);
      wx.setStorageSync("latitude", latitude);
      if (resolve) {
        resolve(res);
      }
    },
    fail: function (res) { 
      //用户授权获取地理位置失败，默认深圳龙岗区
      // res = {longitude:114.24779,latitude:22.71991};
      if (resolve) {
         resolve(res.msg);
      }
    }
  })  
}

/**
 * 导出
 */
module.exports = {
  getLocation: getLocation,
}




// module.exports = {
// 	getLocation
// }